package database;
//java事务处理/
import java.sql.*;

public class SetAutoCommit {
    /**
     * 事务处理要首先关闭自动提交---connection.setAutoCommit(false)
     * 提交事务，以上的所有事务全部执行：commit()-----保存点机制setSavepoint()
     * 回滚事务，以上的所有事务全都不执行：rollback()----保存点机制rollback(Savepoint)
     * 所有的东西全部是同一个事务进行处理*/
    public static void main(String []  args) throws Exception
    {
        try{
            Class.forName("com.mysql.jdbc.Driver");
            System.out.println("注册驱动成功");
        }catch(Exception e)
        {System.out.println("注册驱动失败");
        e.printStackTrace();}
        String url="jdbc:mysql://localhost:3306/zhuce?useSSL=FALSE&serverTimezone=UTC";
        Connection conn=null;
        try{
            //构件Java和数据之间的桥梁
            conn= DriverManager.getConnection(url,"root","123456789");
            conn.setAutoCommit(false);//关闭自动提交事务
            insertB(conn,"insert into users(id) values(12955)");
            //insertB(conn,"insert into users(id,name,password) values('10013','tangyonggaung','123456')");
            Savepoint point1=conn.setSavepoint();//保存数据节点
           // conn.rollback(point1);
            conn.commit();

        }catch(Exception e){
            e.printStackTrace();
        }
    }
    public static void insertB(Connection conn,String sql)
    {
        try{
            //构建数据执行者
            Statement stmt=conn.createStatement();
            //执行sql语句
            int result=stmt.executeUpdate(sql);
            stmt.close();
       }catch(Exception r)
        {r.printStackTrace();}
    }
}
